home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / Code Inside / Tut3.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  4.1 KB  |  136 lines

  1. *************************************************************************************************
  2.                       abex' 5th CrackMe
  3. *************************************************************************************************
  4.  
  5. Author:        abex
  6. Protection:    Serial
  7. URL:        http://www.l2c-board.de/crackmes/l2cabxc5.zip
  8. Tools used:    SoftICE
  9.  
  10.  
  11. --->    Intro...
  12.  
  13. Hi and welcome to my next tutorial =)
  14. This time we need to find the right Serial and make a KeyGen if you can but i'll leave
  15. that up to you now we're going to sniff out the serial.
  16.  
  17.  
  18. --->    Let's Begin...
  19.  
  20. Open up the CrackMe and it asks us for a Serial type in a fake Serial I've used: 0000000000
  21. Then get into SoftICE (CTRL + D) and type "bpx GetDlgItemTextA" press enter and leave
  22. SoftICE (F5) then press "Check" and we're back in SoftICE and press (F11) 1 time and
  23. you'll see this Code:
  24.  
  25.  
  26. PUSH    00000000
  27. PUSH    00000000
  28. PUSH    004020C8
  29. PUSH    00402190
  30. PUSH    00402194
  31. PUSH    00000032
  32. PUSH    0040225C            <--- address for HardDisk name.
  33. PUSH    00000000
  34. CALL    [GetVolumeInformationA]
  35.  
  36.  
  37. Aha... HardDisk information =)
  38. go through this till your over the GetVolumeInformationA call.
  39. Then you'll see this piece of Code:
  40.  
  41.  
  42. PUSH    004023F3            <--- 4562-ABEX  "string1"
  43. PUSH    0040225C            <--- HardDisk name.
  44. CALL    [lstrcatA]
  45.  
  46.  
  47. As you'll see here it takes the string "4562-ABEX" and copy's it behind your HardDisk name.
  48. Let's step over the lstrcatA call and you'll see this Code:
  49.  
  50.  
  51. MOV    DL, 02                <--- mov 02 into DL
  52. ADD    DWORD PTR [0040225C], 00000001    <--- add 01 at offset 0040225C
  53. ADD    DWORD PTR [0040225D], 00000001    <--- add 01 at offset 0040225D
  54. ADD    DWORD PTR [0040225E], 00000001    <--- add 01 at offset 0040225E
  55. ADD    DWORD PTR [0040225F], 00000001    <--- add 01 at offset 0040225F
  56. DEC    DL                <--- sub 01 from DL
  57. JNE    004010AF            <--- repeat loop if DL not zero
  58.  
  59.  
  60. Ok, so he puts 02 into DL then adds 01 at offset 0040225C (which is the first char of our
  61. HardDisk name) then adds 01 at offset 0040225D (which is the second char of our HardDisk name)
  62. then adds 01 at offset 0040225E (which is the third char of our HardDisk name) and then adds
  63. 01 at offset 0040225F (which is the fourth char of our HardDisk name).
  64. Then it subs 01 from DL (which holds now 01) and repeats this loop till DL is 00.
  65. Ok, this wasn't so hard so what it actually does is it adds 02 to the thirst four chars of our
  66. HardDisk name.
  67. I'll hope i explained it very well and that you get this all =)
  68. So let's see what's behind the JNE:
  69.  
  70.  
  71. PUSH    004023FD            <--- L2C-5781  "string2"
  72. PUSH    00402000            <--- empty address
  73. CALL    [lstrcatA]
  74.  
  75.  
  76. Here it copy's the string "L2C-5781" into an empty address.
  77. Ok, let's see what's behind the lstrcatA call:
  78.  
  79.  
  80. PUSH    0040225C            <--- HardDisk name + string1
  81. PUSH    00402000            <--- string2
  82. CALL    [lstrcatA]
  83.  
  84.  
  85. Here it copy's the string "HardDisk name + string1" behind string2.
  86. Ok, that's easy to follow i believe, so now we got the real Serial =)
  87. let's see what's next:
  88.  
  89.  
  90. PUSH    00402324            <--- address of fake Serial
  91. PUSH    00402000            <--- address of real Serial
  92. CALL    [lstrcmpiA]
  93.  
  94.  
  95. And here it just simply compares the fake Serial with the real Serial.
  96. That's wasn't so hard now was it =)
  97. Then finally you'll see this behind the lstrcmpiA call:
  98.  
  99.  
  100. CMP    EAX, 00000000            <--- compares EAX with 00000000
  101. JE    00401017            <--- jump to good boy if equal
  102.  
  103.  
  104. Ok, you can patch the JE to JNE or EB (better EB because it'll jump always even if you enter
  105. the right Serial) BUT abex said in the .nfo file that patching is NOT allowed so don't do it =)
  106. So finally i got this info (works only on my computer).
  107.  
  108.  
  109. Serial:        L2C-5781YKPFOWS98SE4562-ABEX
  110.  
  111.  
  112. yes as you'll notice my HardDisk is called WINDOWS98SE =)
  113.  
  114. If you have questions mail me at:    code.inside@home.nl
  115.  
  116.  
  117. --->    Outro...
  118.  
  119. Thanks again for reading my tutorial i really enjoy writing tutorials.
  120. this is my 3rd tutorial now and i'm planning to do some more =)
  121. Now i'm doing only tutorials on CrackMe's why ????
  122. Dunno i just like CrackMe's but i'll write about progs soon =)
  123.  
  124.  
  125. --->    Greetings...
  126.  
  127. Everybody at TrickSoft,
  128. Everybody at FCC,
  129. Everybody in #Cracking4Newbies and YOU =)
  130.  
  131.  
  132.          Don't trust the Outside, trust the InSiDe !!!!!
  133.  
  134.                  Cya...
  135.  
  136.                    CoDe_InSiDe